//流水线加法器，流水线操作能够提高系统的工作频率，但是是以牺牲器件资源为代价的。
//制作者：FPGA研究者
//时间：2022年7月28日

module pipeline_add(clk,rst,a,b,cin,cout,sum);
     input [7:0]a,b;
	  input clk,rst,cin;
	  output reg [7:0] sum;
	  output reg cout;
	  reg [3:0] tempa,tempb,first;
	  reg cin1;
	
always@(posedge clk) begin
     if(!rst) begin
	     tempa<=4'h0;
		  tempb<=4'h0;
		  first<=4'h0;
		  end
	  else 
	    begin 
		  {cin1,first}<=a[3:0]+b[3:0]+cin;
		  tempa<=a[7:4];
		  tempb<=b[7:4];
		 end
	 end
	 
		
always@(posedge clk) begin
     if(!rst) begin
	     sum<=8'h00;
		  cout<=1'b0;
		  end
	  else 
	    begin 
		  {cout,sum[7:4]}<=tempa+tempb+cin1;
		  sum[3:0]<=first;
		 end
	 end
endmodule
	 
		   
		  